1. Technical Field
This invention relates generally to systems for downloading software and data modules into terminals over a network, such as home communication terminals (HCTs) in a cable television network. More specifically, the invention provides an apparatus and method for selectively downloading different versions of software modules and data modules to a variety of potentially different terminal types, where the differences may be due to variations in hardware, operating system versions, or other parameters.
2. Related Information
Systems capable of downloading computer software into terminals such as HCTs in a subscription television system are well known. For example, U.S. Pat. No. 5,440,632, entitled xe2x80x9cReprogrammable Subscriber Terminalxe2x80x9d, describes a system including means for reprogramming subscriber terminals by downloading code in a series of transactions. Such systems can be used to add new applications, or to replace outdated or faulty software. Difficulties and inefficiencies may arise, however, in networks having different types of terminals which require different versions of software.
For example, in a cable television network, some subscribers may have the newest HCT model with fast processors, special peripherals and extra memory, while other subscribers may have older HCTs which do not have such interfaces or capabilities. Additionally, some HCTs may be loaded with the latest version of an operating system, while others may be compatible only with older versions of the operating system. Similarly, HCTs from different suppliers with different designs generally require different versions of software. In such systems, multiple versions of software and data must be downloaded. Thus arises a problem in determining which versions of particular modules should be downloaded into each terminal, and providing an efficient scheme for doing so.
One possible method for solving the aforementioned problem is to provide each terminal with means for requesting only a particular version of a module from the headend. Unfortunately, such a scheme requires two-way communication between the terminals and the headend, which may be expensive and inefficient to provide, particularly since each terminal would require, at least temporarily, a dedicated channel for transmitting the requested version of the software or data.
Other downloading schemes involving client-server paradigms in a network environment are also known. For example, in a network comprising a server and a plurality of clients, any particular client on the network requiring a new or updated software module can download such software by making a request to the server, which provides the requested version over the network. However, as noted above, in networks such as subscription television systems, such two-way communication may be expensive and difficult to provide, and may result in increased complexity and reduced download performance. Furthermore, it may be difficult to coordinate version numbers among different software applications, complicating the task of determining which versions of complementary software should be downloaded into a particular terminal.
Finally, systems which require communication between the downloading source and each terminal impose additional processing requirements upon the downloading source and on the terminal. In a network comprising hundreds of thousands of terminals and a single downloading source, such added processing can slow down the system unacceptably.
The above-described problems will likely worsen as the variety of HCTs expands to provide consumers with a wider range of terminals of varying capabilities and prices, and from multiple suppliers with different designs.
Accordingly, in order to overcome the above and other difficulties, a means of selectively downloading software and data modules without requiring two-way client-server communication is desirable. To date, no such suitable approach has been developed.
The present invention solves the aforementioned problems by providing a system and method for selectively downloading software and data modules to terminals in a network without requiring communication between the terminal and the downloading source. The term xe2x80x9cmodulesxe2x80x9d as used herein includes application programs, subparts of programs, operating systems, xe2x80x9cpatchesxe2x80x9d, data tables, groups of interpretable instructions, and the like.
According to various aspects of the invention, an authoring source generates a plurality of module versions according to different terminal configurations, operating system versions, or other hardware parameters such as memory size. Each different module version has accompanying descriptor information which identifies the compatibility requirements and/or interfaces needed to support the module. A transmitting (downloading) source such as a headend facility transmits, to a plurality of terminals, descriptors which correlate each module version with its required interfaces. Each terminal receives the transmitted descriptors and, by comparing the descriptors with an internal configuration table, selects the xe2x80x9cbestxe2x80x9d module version for that terminal. The actual module may be downloaded in a xe2x80x9ccarouselxe2x80x9d channel which continuously broadcasts all the various versions of modules in a loop, or it may be downloaded by other means such as an in-band channel.
According to another aspect of the invention, each terminal may automatically extract the descriptors upon boot-up to automatically find the most recent version of the operating system to be downloaded for the terminal.
According to yet another aspect of the invention, each terminal may extract the descriptors after a user selects an application program.
Other features and advantages will become apparent through the following detailed description, the drawings, and the appended claims.